package br.ufc.persis.ui;

import java.util.Scanner;

import br.ufc.persis.controller.DepartamentoController;
import br.ufc.persis.controller.FuncionarioController;
import br.ufc.persis.controller.ProjetoController;
import br.ufc.persis.model.Departamento;

public class Main {
	static Scanner sc = new Scanner(System.in);
	
	private static int imprimirTelaInicio(){
		System.out.println("1 - Departamentos");
		System.out.println("2 - Projetos");
		System.out.println("3 - Funcionarios");
		return Integer.parseInt(sc.nextLine());
	}
	
	private static int imprimeTelaDepartamento(){
		System.out.println("1 - Novo departamento");
		System.out.println("2 - Listar departamentos");
		System.out.println("3 - Apagar Deparmento");
		System.out.println("4 - Buscar departamento");
		return Integer.parseInt(sc.nextLine());
	}
	
	private static int imprimeTelaProjeto(){
		System.out.println("1 - Novo projeto");
		System.out.println("2 - Listar projetos");
		System.out.println("3 - Apagar projeto");
		System.out.println("4 - Buscar projeto");
		return Integer.parseInt(sc.nextLine());
	}
	
	private static int imprimeTelaFuncionarios(){
		System.out.println("1 - Novo funcionario");
		System.out.println("2 - Listar funcionarios");
		System.out.println("3 - Apagar funcionario");
		System.out.println("4 - Buscar funcionario");
		return Integer.parseInt(sc.nextLine());
	}
	
	private static void processaDepartamento(int opc){
		DepartamentoController.processar(opc);
	}
	
	private static void processaProjeto(int opc){
		Departamento departamento = DepartamentoController.findDepartamentoByCodigo();
		ProjetoController.processar(opc, departamento);
	}
	
	private static void processarFuncionario(int opc){
		Departamento departamento = DepartamentoController.findDepartamentoByCodigo();
		FuncionarioController.processar(opc, departamento);
	}
	
	public static void main(String[] args) {
		while(true){
			int opc = imprimirTelaInicio();
			switch(opc){
			case 1: 
				opc =  imprimeTelaDepartamento(); 
				processaDepartamento(opc);
				break; 
			case 2:
				opc = imprimeTelaProjeto();
				processaProjeto(opc);
				break;
			case 3:
				opc = imprimeTelaFuncionarios();
				processarFuncionario(opc);
				break;
			}
		}
	}
	
	

}
